package com.probox.order.api.domain;

import com.probox.product.api.domain.ProductCommentApiVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

@Data
@ApiModel(description="订单参数")
public class OrderQuery implements Serializable {
    private static final long serialVersionUID = 1L;

    private Long storeId;

    @ApiModelProperty(value = "支付订单号")
    private String parentOrderNo;

    @ApiModelProperty(value = "订单编号")
    private String orderNo;

    @ApiModelProperty(value = "订单ID 必传")
    private Long orderUid;

    @ApiModelProperty(value = "查询状态（all全部/unpay待支付/unsend待发货/unreceive待收货/uncomment待评价）")
    private String queryStatus;

    @ApiModelProperty(value = "商品名称（根据商品名称搜索订单列表）")
    private String proName;

    //订单集合
    @ApiModelProperty(value = "订单ID集合")
    private List<Long> orderUids;

    @ApiModelProperty(value = "支付方式 wechat(微信)/balance(余额)/alipay(支付宝)/netbank(网银)")
    private String payMethod;

    @ApiModelProperty(value = "订单状态 1:有效 0:用户未支付取消 -1:过期未支付无效 -2:用户已支付取消")
    private String orderStatus;

    @ApiModelProperty(value = "订单类型 good下载/exchange兑换积分/maiduan买断 ")
    private String orderType;

    @ApiModelProperty(value = "支付状态 0 未支付/1已支付 ")
    private String payStatus;

    @ApiModelProperty(value = "订单来源(wechat小程序/H5/Web/Android/IOS) ")
    private String platSource;

    @ApiModelProperty(value = "开票状态 0未开票1已开票(开票状态 0未开票1已开票)")
    private String invoiceStatus;

    @ApiModelProperty(value = "配送方式 express快递、ziti自提、logistics物流 ")
    private String deliverMethod;

    @ApiModelProperty(value = "发货状态 -1取消发货0 未发货/1已发货/2已收货 ")
    private String sendStatus;

    @ApiModelProperty(value = "包裹状态 0待揽收/1运输中/2已妥投 ")
    private String orderPackStatus;

    @ApiModelProperty(value = "评价状态  0待评价 1已评价(评价状态  0待评价 1已评价)")
    private String commentStatus;

    @ApiModelProperty(value = "发票信息ID   修改发票必传")
    private Long invoiceId;

    @ApiModelProperty(value = "收货地址ID   修改地址必传")
    private Long addressId;

    @ApiModelProperty(value = "商品ID(根据商品查未支付订单)")
    private Long proUid;


    //评价，可能有多个商品
    @ApiModelProperty(value = "评价内容")
    private List<ProductCommentApiVo> comments;

    //服务态度评分
    @ApiModelProperty(value = "服务态度评分")
    private int serviceScore;
    //物流服务评分
    @ApiModelProperty(value = "物流服务评分")
    private int logisticsScore;
    //商品评分
    @ApiModelProperty(value = "商品评分")
    private int productScore;

    //订单备注
    private String remark;

    //账号ID
    private Long customerUid;

    //平台ID
    private Long platformUid;

    //下单端口
    private String port;

    private String startDate;
    private String endDate;

    private String fundStatus;

    private Long[] productIds;

}
